4-2 q峖禰誑峈k

我們可以使用 regexp 指令比對字串,也就是找出某一個特定型態的字串在另一個字串的出現位置,這是通用式的最基本用法。例如,如果要找出「love」在一個字串「Love me tender, love me sweet, never let me go」出現的位置,可用下列程式碼:

Example 1: 04-通用運算式/regExp01.mstring = 'Love me tender, love me sweet, never let me go'; pattern = 'love'; startIndex = regexp(string, pattern)startIndex = 17

此回傳結果代表「love」在 string 變數所出現的位置是 17。(請注意,大小寫有別!)

若要進行「大小寫均可」(Ignore Cases)的比對,則可以使用 regexpi 指令,例如:

Example 2: 04-通用運算式/regExp02.mstring = 'Love me tender, love me sweet, never let me go'; pattern = 'love'; startIndex = regexpi(string, pattern)startIndex = 1 17

此回傳結果代表「Love」和「love」在 string 變數所出現的位置分別是 1 和 17。

Hint
本章所有使用 regexp 的範例,均可以代換成 regexpi,以進行「大小寫均可」的比對。

若要找出字串出現的開始和結束位置,可以在使用 regexp 時,多加一個輸出變數,例如:

Example 3: 04-通用運算式/regExp03.mstring = 'Love me tender, love me sweet, never let me go'; pattern = 'me'; [start, finish] = regexp(string, pattern)start = 6 22 42 finish = 7 23 43

其中 start 和 finish 代表所比對到的三個「me」的開始和結束位置。

在上述幾個範例中,pattern 變數都是由一般字元所構成,所以其功能和 findstr 指令功能類似,因此無法顯現通用運算式的神奇功效。在以下各節的說明,我們在 pattern 變數中加入超字元(Metacharacters),就可以看出通用式的神通廣大。


MATLAB程式設計:進階篇